#include<stdio.h>
#include<string.h>
//复合数据类型：由多种数据类型组合在一起，描述复杂事物
//struct : 结构体关键字
//student : 结构体名
struct Student
//结构体定义
{
    int id; //学号
    char Name[20]; //姓名
    // .......
};


// typedef struct Student
// //结构体定义
// {
//     int id; //学号
//     char Name[20]; //姓名
//     // .......
// }Stu;


//类型名重定义
typedef struct Student Stu;



//结构体指针取成员变量用箭头  ->
void PrintStu(const Stu *s)
{
    printf("%d,%s\n",s->id,s->Name);
}


struct Teacher
{
    int id;
    char Name[20];
    Stu s[10];  //一个结构体可以成为另一个结构体的成员变量
    //容量和大小不是同一个东西
    int size;//当前数组的大小
};

int main()
{

    //定义一个结构体变量 : 结构体关键字+结构体名+变量名
    //初始化
    // struct Student s = {1,"zhangsan"};
    // s.id = 2;
    // strcpy(s.Name,"lisi");
    // //输出用  结构体变量名.
    // printf("%d %s\n",s.id,s.Name);
 

    //结构体数组
    Stu s[3] = 
    {
        {1,"zhangsan"},
        {2,"lisi"},
        {3,"wangwu"}
    };
    // for(int i = 0;i < 3; i++)
    // {
    //     printf("%d,%s\n",s[i].id,s[i].Name);
    // }

    for(int i = 0;i < 3; i++)
    {
        PrintStu(s+i);
    }

    return 0;
}